package com.example.common.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;

@Getter
public enum SignInStatus {
    //    NOT_SIGNED(0, "未签到"),     // 初始默认状态
//    SIGNED(1, "已签到"),
//    ABSENT(2, "缺勤"),
//    LEAVE_FOR_REASON(3, "事假"),
//    SICK_LEAVE(4, "病假");
    NOT_SIGNED("未签到"),     // 初始默认状态
    SIGNED("已签到"),
    ABSENT("缺勤"),
    LEAVE_FOR_REASON("事假"),
    SICK_LEAVE("病假");

    @EnumValue // MyBatis Plus 注解，表示该字段为数据库实际存储值
//    public final int value;
    public final String desc;

    SignInStatus(String desc) {
        this.desc = desc;
    }

    /**
     * 根据 value 获取对应的枚举类型
     */
//    public static SignInStatus of(int value) {
//        for (SignInStatus status : values()) {
//            if (status.getValue() == value) {
//                return status;
//            }
//        }
//        throw new IllegalArgumentException("无效的签到状态值: " + value);
//    }

    /**
     * 获取默认签到状态（未签到）
     */
    public static SignInStatus getDefaultStatus() {
        return NOT_SIGNED;
    }
}
